home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / m68k / fbug68k.arc / TARGETS.YSH < prev    next >
Text File  |  1989-08-17  |  12KB  |  438 lines

  1.  
  2. /*
  3. This is the easiest place to make change. If you make a change here,
  4. then all the .c files must be recompiled. This can be done with the
  5. make command and the appropriate makefile.
  6. */
  7.  
  8. /*
  9. the boolean logic symbols defined for code readability.
  10. */
  11.  
  12. #define TRUE 1
  13. #define FALSE 0
  14.  
  15. /*
  16. if you want the monitor to automatically convert all input capitals to
  17. lower case, excpet after a textdel, then this should be true.
  18. Otherwise, this should be false.
  19. */
  20.  
  21. #define CONVCAP  TRUE
  22.  
  23. /*
  24. these are the delimiters. Most are selfexpalnitory.
  25. */
  26.  
  27. #define BINDEL '%'    /* binary number */
  28. #define OCTDEL '@'    /* octal number */
  29. #define DECDEL '&'    /* decimalnumber */
  30. #define HEXDEL '$'    /* hexadecimal */
  31. #define PLUSDEL '+'    /* the arithmatic plus */
  32. #define MINUSDEL '-'    /* the arithmatic minus */
  33. #define SYMBOLDEL '/'    /* start of a symbol in the symbol table */
  34. #define OPTDEL '-'    /* start of an option on a command line */
  35. #define COUNTDEL ':'    /* indicates range uses a count, not address */
  36. #define ADDRDEL ','    /* Used for assembly,change getnum if you change this */
  37. #define TEXTDEL ';'    /* start of a text field */
  38.  
  39. /*
  40. these are the charachters used for halting, continuing or canceling
  41. the output of commands that are taking along time.
  42. */
  43.  
  44. #define HALTCHAR 'h'    /* halt display */
  45. #define CONTCHAR 'c'    /* continue (after a halt) */
  46. #define STOPCHAR 's'    /* stop the display */
  47. #define ESCDEF 0x01    /* escape from transparent mode */
  48.  
  49. /*
  50. these mark various breaks in the structures and strings for such
  51. things as commands, register displays, etc. 
  52. */
  53.  
  54. #define ENDCMD ' '    /* used to show the end of a command */
  55. #define BREAK '='    /* used to request a break in a display */
  56. #define LASTCMD 0     /* ends a structure of indeterminate length */
  57.  
  58. #define ENDSTR '\0'    /* end of a string */
  59. #define LF 10        /* line feed */
  60. #define CR 13        /* carriage return */
  61. /*
  62. directives for while in the mm and as commands.
  63. */
  64.  
  65. #define BACKUP '-'    /* back up a number of bytes */
  66. #define FINISH '.'    /* quit the mm or as command */
  67. #define NEXT '+'    /* advance a number of bytes */
  68. #define HELP '?'    /* print out the directives available */
  69.  
  70. /*
  71. numerical scales used in decoding command lines, or printing information to
  72. the terminal.
  73. */
  74.  
  75. #define DEFAULTSCALE 16    /* the numerical scale used in most situations */
  76. #define REGSCALE 10    /* numerical scale used to display register numbers */
  77. #define COUNTSCALE 10    /* numerical scale for <count> in <range> */
  78. #define DEFCOUNT 48    /* default on <count> if none used in <range> */
  79.  
  80. #define FPSCALE  10    /* numerical scale used to display/except floating
  81.                 point numbers */
  82. #define FPDIGITS 4    /* number of decimal places to display floating point 
  83.                 numbers to */
  84. #define FIELD_DISPLAY TRUE    /* display fields of floating point # data */ 
  85.  
  86. /* ******************************************************************
  87.  
  88.  
  89.             begining of MPU and processor dependant defines
  90.  
  91.  
  92.  
  93.    ******************************************************************* */
  94. /* 
  95. the maximums for displaying o the screen.
  96. */
  97.  
  98. #define MAXLINE 80    /* maximum characters on a line on the screen */
  99. #define MAXSCREEN 20     /* maximum lines to display on the screen at once */
  100. #define REGPERLINE 4    /* number of registers per line to display */
  101. #define REGPERSCREEN 80    /* number of registers to display per screen */
  102. #define MEMLINEDIS 6    /* number of address spaces to print per line */
  103.  
  104. #define MAXCMMU 2    /* number of cmmus for a 88k */
  105.  
  106.  
  107. #define MAXBR 8        /* number of breakpoints available to user */
  108. #define MAXSYMBOL 20    /* number of symbols in symbol table */
  109. #define MAXSYMBLEN 10    /* maximum length of symbol name */
  110.  
  111. /*
  112. memory locations, used for memory map purposes.
  113. */
  114.  
  115. /* *************************** ASM/DISASM DEFINES ************************ */
  116.  
  117. /* Defines that determine which 68xxx device the target system uses 
  118.    and will determine what device the asm/disasm mimics.  If size
  119.    is a factor then deletions in the textdef.h instruction file
  120.    may be made based on the number of instructions that will be referenced 
  121.    the user should define both the DEVICE, EMULATOR and the COPROCESSOR features
  122.    directly below this statement */
  123.  
  124. /* ********************** */
  125. /* ********************** */
  126. /* ********************** */
  127. /* ********************** */
  128. /* ********************** */
  129. /* ********************** */
  130. #define DEVICE 68040
  131. /* ********************** */
  132. /* ********************** */
  133. /* ********************** */
  134. /* ********************** */
  135. /* ********************** */
  136. /* ********************** */
  137.  
  138.     /* known devices are 68000,68008,68010,68020,68030,68040 
  139.        this determines what version of the asm/disasm
  140.        will be compiled  */
  141.  
  142.     /* NOTE: The 68HC000 should be defined as a 68000 */
  143.  
  144. #if (DEVICE==68040)
  145.  
  146. /* ********************** */
  147. /* ********************** */
  148. /* ********************** */
  149. /* ********************** */
  150. /* ********************** */
  151. /* ********************** */
  152. #define EMULATOR TRUE       /* options are TRUE or FALSE */
  153. /* ********************** */
  154. /* ********************** */
  155. /* ********************** */
  156. /* ********************** */
  157. /* ********************** */
  158. /* ********************** */
  159.  
  160.     /* ***************** !!!!!!!!!!!!!!!!!!!!!!! ******************* */
  161.     /*     NOTE: This will provide entire 68881 support to 68040     */
  162.     /* ***************** !!!!!!!!!!!!!!!!!!!!!!! ******************* */
  163.  
  164. #endif
  165.  
  166.  
  167.  
  168. #if (DEVICE>=68020)
  169.  
  170. #if(DEVICE==68040)
  171. #define COPROCESSOR TRUE      
  172. #else
  173. /* ********************** */
  174. /* ********************** */
  175. /* ********************** */
  176. /* ********************** */
  177. /* ********************** */
  178. #define COPROCESSOR TRUE       /* options are TRUE or FALSE */
  179. /* ********************** */
  180. /* ********************** */
  181. /* ********************** */
  182. /* ********************** */
  183. /* ********************** */
  184. /* ********************** */
  185.  
  186.     /* ***************** !!!!!!!!!!!!!!!!!!!!!!! ******************* */
  187.     /*         NOTE: This is for entire 68881 support         */
  188.     /* ***************** !!!!!!!!!!!!!!!!!!!!!!! ******************* */
  189.  
  190. #endif
  191. #endif
  192.  
  193. /* ********************************************************************* */
  194.  
  195.  
  196. /* ********************************************************************* */
  197. /* ********************** MEMORY MAP FOR DEBUGGER *********************** */
  198.  
  199. #define DUARTALOC 0xffe02000    /* MC68681 duart channel a */
  200. #define DUARTBLOC 0xffe02008    /* MC68681 duart channel b */
  201.  
  202. #define ROMLOC 0x100000        /* system ROM space            */
  203.                 /* .text segment should be loaded here    */
  204.                 /* .data segment should be loaded here    */
  205.  
  206. #define SYSRAMLOC  0x000fe000    
  207.                 /* system RAM space             */
  208.                 /* NOTE: space must be reserved for the
  209.                      location of the .bss used by
  210.                      the monitor.            */
  211.                 /* Provided the .bss is not larger than
  212.                    1000 (ie. VBRLOC resides at SYSRAMLOC 
  213.                    + 1000) placing the .bss from the 
  214.                    monitor at this location is allowed     */
  215.  
  216. #define ISPLOC SYSRAMLOC+0x2000 /* defines for monitor     */
  217. #define MSPLOC SYSRAMLOC+0x1c00
  218. #define USPLOC SYSRAMLOC+0x1b00
  219. #define VBRLOC SYSRAMLOC+0x1000
  220.  
  221. #define USERPCLOC 0x4000     /* defines for usercode    */
  222. #define USERVBRLOC 0x0
  223.  
  224. /* *********************************************************************** */
  225. #if(DEVICE<68020)
  226. #define USERSSPLOC USERVBRLOC+0x2000    /* Note: Only one of these is
  227.                          used based on the device
  228.                          being implemented */
  229. #else
  230. #define USERISPLOC USERVBRLOC+0x2000
  231. #endif
  232. /* *********************************************************************** */
  233.  
  234. #define USERMSPLOC USERVBRLOC+0x1c00
  235. #define USERUSPLOC USERVBRLOC+0x1b00
  236.  
  237. #define SRSTART 0x2700        /* status register    */
  238.  
  239. #define TERMINAL DUARTALOC    /* location of terminal (i.e. screen) */
  240. #define HOST DUARTBLOC        /* location of host computer port */
  241.  
  242.  
  243. /* ************************** END MEMMORY MAP ************************** */
  244. /* ********************************************************************* */
  245.  
  246. /*
  247. number of bytes word different sizes.
  248. */
  249.  
  250. #define WORD 2        /* word 2 for 68k, 4 for 88k */
  251. #define BYTE 1        /* byte, always 1 */
  252. #define LONG 4        /* long, 4 for 68k, not used for 88k */
  253. #define HALF 2        /* half, 2 for 88k, not used for 68k */
  254. #define DFSIZE 2    /* default size to use if none specified */
  255.  
  256.  
  257. #ifndef COPROCESSOR
  258. #define COPROCESSOR FALSE
  259. #endif
  260.  
  261.  
  262. #if (DEVICE==68008)
  263. #define MAXINST 124
  264. #define COPROCESSOR FALSE
  265. #endif
  266. #if (DEVICE==68010)
  267. #define MAXINST 130
  268. #define COPROCESSOR FALSE
  269. #endif
  270. #if (DEVICE==68020)
  271. #define MAXINST 159
  272. #endif
  273. #if (DEVICE==68030)
  274. #define MAXINST 171
  275. #endif
  276. #if (DEVICE==68040)
  277. #define CRENTRIES 15
  278. #define MAXINST 186        /* Note: This is the entire table */
  279. #endif
  280.  
  281. #ifndef MAXINST
  282. #define DEVICE  68000
  283. #define MAXINST 124
  284. #endif
  285.  
  286. #ifndef CRENTRIES    /* variable used to determine the extent of the
  287.                CONTROLREG table for movec instruction  */
  288. #define CRENTRIES 7
  289. #endif
  290.  
  291. #ifndef EMULATOR
  292. #define EMULATOR FALSE
  293. #endif
  294.  
  295. #if (COPROCESSOR==TRUE || EMULATOR==TRUE)
  296. #define MAXCOPROCINST 41    /* NOTE: This will be changed to represent the 
  297.                         entire table when the table is 
  298.                       implemented    */
  299. #else
  300. #define MAXCOPROCINST 36
  301. #endif
  302.  
  303.  
  304. #if (EMULATOR==TRUE || COPROCESSOR==TRUE)
  305. #define MONADICSRCH 34
  306. #endif
  307.  
  308. #ifndef MONADICSRCH
  309. #define MONADICSRCH 7
  310. #endif
  311.  
  312. #define MAXMONADIC 34
  313.  
  314. #if(DEVICE==68040 || COPROCESSOR==TRUE)
  315. #define MAXREGS 75     /* most registers used by any one device */
  316. #endif
  317.  
  318. #if(DEVICE==68030)
  319. #ifndef MAXREGS
  320. #define MAXREGS 41     /* most registers used by any one device */
  321. #endif
  322. #endif
  323.  
  324.  
  325. #ifndef MAXREGS
  326. #define MAXREGS 33     /* most registers used by any one device */
  327. #endif
  328. /* ************************************************************************ */
  329.  
  330. /*
  331. location of program counter, status register and stack pointer in mpu register
  332. list.
  333. */
  334.  
  335. #define PC 0
  336. #define SR 1
  337. #define USP 3
  338. #define MSP 4
  339. #define ISP 5
  340. #define VBR 6
  341. #define CACR 7
  342. #define CAAR 8
  343. #define SFC 9
  344. #define DFC 10
  345. #define D0 12
  346. #define A7 28
  347.  
  348. /*
  349. various values used to mask of bits in assemb;er/disassember
  350. */
  351.  
  352. #define MASK8  0x000000ff
  353. #define MASK4  0x0000000f
  354. #define MASK16 0x0000ffff
  355. #define MASK12 0x00000fff
  356. #define MASK32 0xffffffff
  357. #define MASK 0xfc000000
  358. #define MASK2521 0x03f00000
  359. #define MASK2016 0x001f0000
  360. #define MASK50 0x0000001f
  361. #define MASK60 0x0000003f
  362. #define MASK80 0x000001ff
  363. #define MASK105 0x000007e0
  364. #define MASK95 0x000003e0
  365. #define MASK75 0x000000e0
  366. #define MASK98 0x00000300
  367. #define MASK109 0x00000600
  368. #define MASK87 0x00000180
  369. #define MASK65 0x00000060
  370. #define MASK1514 0x0000c000
  371. #define MASK1511 0x0000f800
  372. #define MASK1310 0x00003c00
  373. #define MASK1311 0x00003800
  374. #define MASK139 0x00003e00
  375. #define MASK9 0x00000200
  376. #define MASK250 0x03ffffff
  377.  
  378. /*
  379. Hex values used in tracing and break points
  380. An alternative to using ILLEGAL is BKPT #0 (0x4848).
  381. The monitor will handle both identically, but the hardware will react 
  382. differently.
  383. */
  384. #define BRTRAP 0x4afc    /* hex value of ILLEGAL instruction for break points */
  385. #define TRACEON 0x8000    /* bit to toggle to turn trace on */
  386.  
  387. /*
  388. location in the inst struct where the set of instructions start.
  389. */
  390.  
  391. #define SET0 0
  392. #define SET1 32
  393. #define SET2 40
  394. #define SET3 112 
  395. #define SET4 135
  396. #define SET5 138
  397. #define SET6 170
  398. #define SET7 207
  399. #define SET8 213
  400. #define SET9 229
  401. #define SET10 178
  402. #define SET11 124
  403. #define SET12 48
  404. #define SET13 80
  405. #define SET14 104
  406.  
  407.  
  408. /*
  409. offsets for duart
  410. */
  411.  
  412. #define MR1X 0    /* mode register 1 */
  413. #define MR2X 0    /* mode register 2 */
  414. #define SRX  1    /* status register */
  415. #define CSRX 1    /* clock-select register */
  416. #define CRX  2    /* command register */
  417. #define RBX  3    /* receive buffer */
  418. #define TBX  3    /* transmitter buffer */
  419. #define IPCR 4    /* input port change register */
  420. #define ACR  4    /* auxillary contol register */
  421. #define ISR  5    /* interrupt status register */
  422. #define IMR  5    /* interrupt mask register */
  423. #define CMSB 6    /* counter most significant byte */
  424. #define CTUR 6    /* counter/timer upper register */
  425. #define CLSB 7    /* counter least significant register */
  426. #define CTLR 7    /* counter/timer lower register */
  427. #define IVR 12    /* interrupt vector register */
  428. #define IP  13    /* input port */
  429. #define OPCR 13    /* output port configuration register */
  430. #define STRC 14    /* start counter command */
  431. #define BTST 14    /* bit set command */
  432. #define STPC 15    /* stop counter command */
  433. #define BTRST 15    /* bit reset command */
  434.  
  435.  
  436. /* **********    end of hardware and MPU dependant code  *************** */
  437.  
  438.